<HTML>
<HEAD>
<TITLE>Profile Editor</TITLE>
</HEAD>
<BODY>
<H2>Profile Editor</H2><br>
<img src="ProfileEditDialog.jpg" width="454" height="716" border="0" alt="" align="middle">
<h3>The Basics</h3>
<p>In addition to parameters such as screen size and the maximum amount
 of the screen to cover with rain, each profile contains a list of
rain "styles".  Every time a rain sprite is spawned, a style
is randomly picked from the styles available in this profile.
These styles are listed in the table in the
middle of the dialog box.  Styles are added, copied, modified,
and deleted via the buttons below the table.  For more information
on the style-specific parameters, please see the 
<a href="StyleEditDialog.html">Style Editor</a> help.</p>
<h3>The Nitty-Gritty</h3>
<p>Here we will discuss the specifics of each parameter that is not
listed in the table.  For help with the table settings, please see
the help for the <a href="StyleEditDialog.html">Style Editor</a>.</p>
<ul><li><b>Width, Height</b> - These are the screen dimensions,
and required to be a power of 2, thus the drop-down
boxes.</li>
<li><b>Milliseconds Between Frames</b> - This parameter controls
the number of milliseconds to wait before <i>starting</i> the
next frame after the current frame is initiated.  In other
words, this is a lower bound on the rendering speed.  If it
takes your machine longer than the value of this parameter to
render each scene, the result will be dropped frames.  Smaller
values for this parameter can result in smoother animation,
if the machine can handle it.  The
maximum framerate can be calculated by dividing 1000
by the value of this parameter.  For example, for a value of
50, the maximum framerate will be 1000 / 50 = 20 frames per
second.</li>
<li><b>Max Density</b> - This parameter controls the maximum
amount of the screen that can be covered by rain sprites.</li>
<li><b>Gravity</b> - This parameter controls how quickly the sprites
are accelerated toward the bottom of the screen.</li>
<li><b>Bounce</b> - This parameter controls the elasticity of the "ground".
The more bounce, the higher the particles will bounce when they hit the
"ground".</li>
<li><b>Max Wind Accel</b> - This parameter controls the maximum amount of
"wind" or horizontal acceleration.</li>
<li><b>Max Wind Change</b> - This parameter controls how quickly the
"wind" can change.  The less of this parameter, the more gradual the change
in "wind".</li>
<li><b>Y Palette Sync</b> - For 2D palettes, this parameter controls how
the secondary axis of new sprites is synchronized.  After a sprite is
spawned, the secondary axis will rotate at the rate specified by the
style.  The Y Palette Sync options are:
<li><i>Random</i> - The palette index on the secondary axis will be chosen
randomly for each sprite on spawn.</li>
<li><i>Sync Start</i> - The palette index on the secondary axis will always
be 0 for each sprite on spawn.</li>
<li><i>Sync All</i> - A "master clock" is maintained that increments by 1 at
each clock tick.  The value of this "master clock" is what is passed to each
sprite on spawn.</li></li>
</ul>
<h3>Performance</h3>
<p>The two parameters that affect performance the most are
the screen dimensions and the number of milliseconds between
frames.  If the screen saver seems jerky, try increasing the
number of milliseconds between frames and reducing the screen
dimensions.  Raw CPU power is part of the equation, but the
biggest bottleneck is the speed of your computer's front-side
bus.  For slower buses, reducing the dimensions of the
screen will have a huge effect.  The number of sprites on screen
can affect performance as well.  Decreasing the Max Density can
increase performance.  Bounce and Max Wind Accel play a big part
in determining how long a sprite is on the screen.  Reducing these
values may also help increase performance.</p>
<h3>Where To Look For More Info</h3>
<p>For more help, feel free to visit us at
http://sites.google.com/site/idlescreenproject/, where
you can take advantage of the FAQS, Wiki, and user lists.</p>
<hr>
<a href="index.html">Back To the Main Page</a>
</BODY>
</HTML>